/*
题目：二进制求和
给你两个二进制字符串，返回它们的和（用二进制表示）。

输入为 非空 字符串且只包含数字 1 和 0。
 */
public class AddBinary {
    public String addBinary(String a, String b) {
        StringBuilder sb = new StringBuilder();
        int carry = 0;
        int i = a.length() - 1;
        int j = b.length() - 1;
        while (i >= 0 || j >= 0) {
            carry += (i >= 0) ? a.charAt(i) - '0' : 0;
            carry += (j >= 0) ? b.charAt(j) - '0' : 0;
            i--;
            j--;
            sb.append(carry % 2);
            carry /= 2;
        }
        if (carry > 0) {
            sb.append(carry);
        }
        return sb.reverse().toString();
    }
}
